﻿// Less2DB.NET framework
// http://code.google.com/p/less2db/
//
// Copyright © Wangzhongwu, 2011
// alex.wzw@gmail.com
//

namespace Less2DB.Interfaces
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;

    /// <summary>
    /// 数据库适配器接口，实现该接口的功能，用于兼容不同类型的数据库。
    /// </summary>
    public interface IDAL
    {
        /// <summary>
        /// 创建并返回数据库连接。
        /// </summary>
        /// <returns>返回数据库连接。</returns>
        IDbConnection CreateConnection();

        /// <summary>
        /// 创建并返回数据库连接。
        /// </summary>
        /// <param name="connectionString">数据库连接字符串</param>
        /// <returns>返回数据库连接。</returns>
        IDbConnection CreateConnection(string connectionString);

        /// <summary>
        /// 创建并返回数据库查询参数。
        /// </summary>
        /// <param name="name">参数名称。</param>
        /// <param name="value">参数值。</param>
        /// <returns>返回查询参数。</returns>
        IDbDataParameter CreateParameter(string name, object value);

        /// <summary>
        /// 创建并返回数据适配器。
        /// </summary>
        /// <returns>返回数据适配器</returns>
        IDbDataAdapter CreateDataAdapter();

        /// <summary>
        /// 返回数据适配器的名称。
        /// </summary>
        string DALName { get; }
    }
}
